<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019\6\10 0010
 * Time: 10:54
 */
namespace BigVideo\IMooc;

use BigVideo\IMooc\Loader;

/**
 * 四种常见的spl的数据结构
 * Class DataStructure
 * @package BigVideo\IMooc
 */
class DataStructure
{
    /**
     * 数据  数据结构栈   先进后出
     */
    public function splStackDataAction(){
        $stack = new SplStack();
        $stack->push("data1");
        $stack->push("data2");
        echo $stack->pop();
        echo $stack->pop();
    }

    /**
     * 数据结构   队列  先进先出
     */
    public function splQueueDataAction(){
        $queue = new SplQueue();
        $queue->enqueue("data1");
        $queue->enqueue("data2");
        echo $queue->dequeue();
        echo $queue->dequeue();
    }

    /**
     * 数据结构   堆  先进先出(最小的堆还有最大的堆)
     */
    public function splMinHeapDataAction(){
        $minHeap = new SplMinHeap();
        $minHeap->insert("data1");
        $minHeap->insert("data2");
        echo $minHeap->extract();
        echo $minHeap->extract();
    }

    /**
     * 数据结构   固定尺寸的数组
     */
    public function splFixedArrayDataAction(){
        $fixedArray = new SplFixedArray(10);
        $fixedArray[0] = 123;
        $fixedArray[8] = 1323;
        var_dump($fixedArray);
    }
}